package com.ruoyi.system.service.impl;

import java.util.List;

import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ExceptionUtil;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.common.utils.uuid.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.LsFileMapper;
import com.ruoyi.system.domain.LsFile;
import com.ruoyi.system.service.ILsFileService;
import org.springframework.util.ObjectUtils;

/**
 * 【请填写功能名称】Service业务层处理
 * 
 * @author zhouyipeng
 * @date 2023-11-06
 */
@Service
public class LsFileServiceImpl implements ILsFileService 
{
    @Autowired
    private LsFileMapper lsFileMapper;

    /**
     * 查询【请填写功能名称】
     * 
     * @param fileId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    @Override
    public LsFile selectLsFileByFileId(String fileId)
    {
        return lsFileMapper.selectLsFileByFileId(fileId);
    }

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param lsFile 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<LsFile> selectLsFileList(LsFile lsFile)
    {
        return lsFileMapper.selectLsFileList(lsFile);
    }

    /**
     * 新增【请填写功能名称】
     * 
     * @param lsFile 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int insertLsFile(LsFile lsFile)
    {
        lsFile.setCreateTime(DateUtils.getNowDate());
        return lsFileMapper.insertLsFile(lsFile);
    }

    /**
     * 修改【请填写功能名称】
     * 
     * @param lsFile 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int updateLsFile(LsFile lsFile)
    {
        return lsFileMapper.updateLsFile(lsFile);
    }

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param fileIds 需要删除的【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteLsFileByFileIds(String[] fileIds)
    {
        return lsFileMapper.deleteLsFileByFileIds(fileIds);
    }

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param fileId 【请填写功能名称】主键
     * @return 结果
     */
    @Override
    public int deleteLsFileByFileId(String fileId)
    {
        return lsFileMapper.deleteLsFileByFileId(fileId);
    }

    @Override
    public LsFile insertByUpload(LsFile lsFile) {
        String uuid = IdUtils.fastSimpleUUID();
        lsFile.setFileId(uuid);

        lsFileMapper.insertLsFile(lsFile);

        return lsFile;
    }

    @Override
    public LsFile download(String uuid) {

        LsFile lsFile = lsFileMapper.selectLsFileByFileId(uuid);
        if (ObjectUtils.isEmpty(lsFile)|| StringUtils.isEmpty(lsFile.getFileBase64())){
            throw new ServiceException("查询文件不存在");
        }
        return lsFile;
    }
}
